Modern telecommunication networks provide services based on call signaling. The network signaling protocol includes a service layer upon which many of the provided services are implemented. Such services include 1-800 and toll free calling, calling cards, private virtual networks, cellular registration and roaming, prepaid calling, etc.
FIG. 1 is a diagram of such a call signaling-based telecommunication network. The network includes one or more telecommunication switches 110-1 through 110-m, a signaling system 120, and one or more network control elements 130-1 through 130- n. The telecommunication switches 110 are responsible for connecting and disconnecting a telephone call and are primary originators of call signals (or call messages) during the life of the call. Typically, call signals indicate the call status, e.g., connected, disconnected, busy, forwarded, answered, timed out, etc., or include a command, e.g., update the call's status, start or stop tolling the call, bill the call, etc., to be executed by another network component with regard to the call. The signaling system 120 routes the call signals and other signals between the switches 110 and the network control elements 130. The signaling system 120 may include an intermediary routing node (not shown) that routes signals to the designated switch or control element. The network control elements 130 are responsible for providing the services on the network. The control elements 130 receive and process call signals from the switches 110 and implement the services based on the processed call signals.
An example of a call signaling-based telecommunication network is the Signaling System 7, (SS7) network. The SS7, network includes telecommunication switches called mobile switching centers (MSC), which are used primarily in mobile telephone networks. The SS7, network includes a signaling system to route call signals using a signal transfer point (STP) as an intermediary routing node. The SS7, network also includes network control elements called mobile service control points (SCP), which provide the mobile services on the network.
One call typically generates several call signals during the life of the call. As such, the network control elements should be able to tie together all the call signals in order to reliably provide the services associated with the call.
One commonly used method involves the originator of the call signal, i.e., the telecommunication switch, populating the header of the call signal with a string identifying the network control element to which the call signal is to be routed for processing. An intermediary routing node on the network examines the string, consults a routing table to identify the destination network control element, and then routes the call signal to the identified control element. Hence, all the call signals for the call have the same identifying string, such that the routing node routes all the call signals for that call to the same control element. The identified network control element is then able to tie together all the call signals for that call with little effort.
In reality, however, multiple originators generate call signals for the same call in a network. Some of the originators use headers with different formats or different identifying strings, as in certain prepaid services. While other originators do not use headers at all. As such, the intermediary routing node may not reliably identify the appropriate destination network control element and properly route all the call signals for the call thereto.
A common solution to the header problem has been to use only one network control element to process all call signals for all calls, with the remaining control elements as backups if the one element fails. The primary control element then gets all the call signals from different originators and uses an appropriate method to identify and tie together those call signals belonging to the same call. If the primary element fails, one of the backup elements then takes over and receives all the call signals.
This solution, however, is not very efficient because several of the control elements are idle and are only used when there is a primary element failure, while the primary control element works constantly. Moreover, after sitting idle, there is no guarantee that a backup control element could take over and operate properly, in the event of a primary element failure.
A solution to the idleness problem has been to use the primary network control element with a live redundant backup network control element at the same geographic site that runs concurrently therewith. As such, if the primary element fails, the backup element is already running and can take over seamlessly without delay.
This solution, however, is also not very efficient because of the duplicated work by the control elements, such that the backup element's processing power is wasted when it could be used to process other call signals.
A solution to the problems associated with using only one network control element or using a primary control element with a live redundant backup is described in related U.S. application Ser. No. 11/509,037, which involves adding context servers to the telecommunication network to provide context information to the network control elements about the call signal that the control element is currently processing. The context information may come from the call's previously processed call signals that are stored in the context servers. Any network control element may access one or more of the context servers to store call signals and/or context information for the call that the control element processed. Any network control element may also access one or more of the context servers to retrieve previously processed call signals and/or context information for the call, where the previously processed call signals were processed by either the retrieving or any other control element. As such, any network control element can reliably process a current call signal for a call without having received and/or processed any preceding call signals for that call.
This allows each network control element to be a redundant backup for other control elements, yet process different call signals concurrently. Moreover, the number of redundant control elements may be arbitrarily large. Furthermore, these network control elements need not reside at the same geographic site. This level of redundancy advantageously provides a highly reliable network.
A context server's context information about a previously processed call signal for a call may include the time the call was connected, disconnected, busy, forwarded, answered, timed out, etc., the calling and called telephone numbers, the amount of prepaid funds available for the call, the number of minutes remaining in a prepaid call, the billing address of the calling party, etc.
For example, suppose a call is connected at 2:00 PM. The call signal to update the status of the call to “connect” is processed by control element A. When the call disconnects, the call signal to update the status of the call to “disconnect” is received by control element B. In order to update the status of the correct call, control element B must have context information about the call. Therefore, control element B must determine what call signals went before and what they meant. This may be done by control element B accessing context servers to get the context information of the “connect” call signal, e.g., the calling number in the connected status. From this information, control element B may reliably change the calling number to the disconnected status.
All or some of the context servers may be responsible for a particular set of calls, call signals, and context information. As such, a network control element may access only those context servers responsible for the particular call that the control element is currently processing.
However, in some instances, there may be no particular basis upon which the context servers are given responsibility, e.g., server capacity, sever utilization, network traffic, etc., which could then result in load imbalance. Or, during network operation, a new network condition may occur that leads to network inefficiency, in which some or all of the context servers are either over-utilized or under-utilized. Until the network condition changes, the context servers may operate inefficiently.
Accordingly, there is a need in the art for a system and method for dynamically partitioning the context servers during network operation into partitions having one or more context servers therein in order to maintain efficiency.